home *** CD-ROM | disk | FTP | other *** search
File List | 1994-09-02 | 26.1 KB | 735 lines |
- ;***************************************************************
- ;
- ; A stereo reverb for the DSP56001 signal processor. Based on,
- ;
- ; Moorer, James A. "About This Reverberation Business."
- ; Computer Music Journal Vol 3, No. 2 (1979), pp. 13-28.
- ;
- ; reprinted in,
- ;
- ; Roads, Curtis, and Strawn, John, ed., _Foundations
- ; of Computer Music_, pp. 605-639, MIT Press, 1985.
- ; ISBN 0-262-68051-3 (paper)
- ; ISBN 0-262-181142 (hard)
- ;
- ; Each comb filter uses a low-pass filter in the feedback path.
- ; The combs and all-pass filter delay lines use a prime-number
- ; of stages to improve diffusion.
- ;
- ; The output all-pass stage is replicated for left/right
- ; decorrelation. Each side uses slightly different gains
- ; and delay lengths. This works a lot better than just inverting
- ; one side and adding in the input.
- ;
- ; I left out the early-reflection FIR filter because I needed the cycles
- ; for other effects.
- ;
- ; Quinn Jensen (jensenq@qcj.icon.com)
- ;
- ;***************************************************************
- P:0000 0040 psect vectors p:$0000:$0040
- P:0040 0200 psect hf_code p:$0040:$0200
- X:0000 0040 psect hf_datax x:$0000:$0040
- X:0040 0100 psect hf_datax1 x:$0040:$0100
- Y:0000 0040 psect hf_datay y:$0000:$0040
- Y:0040 0100 psect hf_datay1 y:$0040:$0100
- X:0400 1000 psect midi_data x:$0400:$1000
- X:1000 F000 psect lo_data x:$1000:$F000
- P:F000 FE00 psect lo_code p:$F000:$FE00
- P:FE00 FFFF psect loader p:$FE00:$FFFF
- X:FFC0 FFFF psect iox x:$FFC0:$FFFF
- Y:FFC0 FFFF psect ioy y:$FFC0:$FFFF
- ;
- ; some oft-used constants
- ;
- X:0000 psect hf_datax
- X:0000 00FFFF ffff dc $FFFF ;used a lot for modulus
- 7FFFFF ONE equ $7FFFFF ;"one"
- X:0001 7FFFFF one dc ONE ;"one"
- ;
- ; L/R inputs and outputs
- ;
- X:0002 000000 in_l dc 0.0
- X:0003 000000 in_r dc 0.0
- X:0004 000000 out_l dc 0.0
- X:0005 000000 out_r dc 0.0
- ;
- ; recompute comb gains g1 and g2
- ;
- X:0006 recalc_comb_gains
- X:0006 609F00 move x:<constsp,r0
- X:0007 058020 movec x:<ffff,m0
- X:0008 57F000 move x:lowpass_cutoff_start,b
- X:0009 000400
- X:000A 47F000 move x:lowpass_cutoff_slope,y1
- X:000B 000401
- X:000C 45F000 move x:comb_g,x1
- X:000D 000402
- X:000E 244000 move #0.5,x0
-
- X:000F 060680 do #6,recalc_loop
- X:0010 000017
- X:0011 205813 clr a (r0)+ ;skip over the modulus const
- X:0012 21E640 add x0,a b,y0
- X:0013 2000D2 mac x0,y0,a ;g1 = .5 * b + .5
- X:0014 21C613 clr a a,y0 ;y0 = g1
- X:0015 4E5860 add x1,a y0,y:(r0)+ ;store g1 in table
- X:0016 2000E7 macr -x1,y0,a ;g2 = g(1-g1) = g - g*g1 with limiting
- X:0017 5E5878 add y1,b a,y:(r0)+ ;update b, store g2 in table
- X:0018 recalc_loop
- X:0018 00000C rts
-
- X:0400 psect midi_data
- ;
- ; default values for midi-derived parameters
- ;
- X:0400 lowpass_cutoff_start
- X:0400 CE0000 dc -0.3906250 ; ctl value of 39
- X:0401 lowpass_cutoff_slope
- X:0401 060000 dc 0.0468750 ; ctl value of 67
- X:0402 comb_g
- X:0402 6A9106 dc 0.8325507974 ; ctl value of 57
- ;
- ; preset comb-length arrays
- ;
-
-
-
- ; comb lenths 383,433,467,523,557,601
- X:0403 comblen_1
- X:0403 00017E dc 383-1
- X:0404 0001B0 dc 433-1
- X:0405 0001D2 dc 467-1
- X:0406 00020A dc 523-1
- X:0407 00022C dc 557-1
- X:0408 000258 dc 601-1
-
-
- ; comb lenths 509,577,631,701,743,797
- X:0409 comblen_2
- X:0409 0001FC dc 509-1
- X:040A 000240 dc 577-1
- X:040B 000276 dc 631-1
- X:040C 0002BC dc 701-1
- X:040D 0002E6 dc 743-1
- X:040E 00031C dc 797-1
-
-
- ; comb lenths 683,769,839,937,991,1069
- X:040F comblen_3
- X:040F 0002AA dc 683-1
- X:0410 000300 dc 769-1
- X:0411 000346 dc 839-1
- X:0412 0003A8 dc 937-1
- X:0413 0003DE dc 991-1
- X:0414 00042C dc 1069-1
-
-
- ; comb lenths 919,1021,1117,1249,1319,1427
- X:0415 comblen_4
- X:0415 000396 dc 919-1
- X:0416 0003FC dc 1021-1
- X:0417 00045C dc 1117-1
- X:0418 0004E0 dc 1249-1
- X:0419 000526 dc 1319-1
- X:041A 000592 dc 1427-1
-
-
- ; comb lenths 1223,1367,1489,1657,1759,1901
- X:041B comblen_5
- X:041B 0004C6 dc 1223-1
- X:041C 000556 dc 1367-1
- X:041D 0005D0 dc 1489-1
- X:041E 000678 dc 1657-1
- X:041F 0006DE dc 1759-1
- X:0420 00076C dc 1901-1
-
-
- ; comb lenths 1627,1823,1987,2213,2341,2539
- X:0421 comblen_6
- X:0421 00065A dc 1627-1
- X:0422 00071E dc 1823-1
- X:0423 0007C2 dc 1987-1
- X:0424 0008A4 dc 2213-1
- X:0425 000924 dc 2341-1
- X:0426 0009EA dc 2539-1
-
-
- ;;;;;;;;;;;;;;;;;;;;;;;
- ; reverb filters
- ;;;;;;;;;;;;;;;;;;;;;;;
-
- ; Reverb filter lengths and coefficients
- ; 6 comb reverb with prime delay lines
- ; Sun Oct 24 13:53:51 1993
- ;
- ; Sample rate 32.5520830 kHz
- ; g 0.8400000
- ;
- ; status STABLE
- ; delay near prime lengths actual
- ; stage (ms) 1 high low best delay g1 g2
- ; ---------------------------------------------------------------
- ; Comb 1 50.0 1628 1637 1627 1627 49.981 0.3064583 0.5825750
- ; Comb 2 56.0 1823 1823 1823 1823 56.003 0.3264583 0.5657750
- ; Comb 3 61.0 1986 1987 1979 1987 61.041 0.3464583 0.5489750
- ; Comb 4 68.0 2214 2221 2213 2213 67.983 0.3594792 0.5380375
- ; Comb 5 72.0 2344 2347 2341 2341 71.916 0.3694792 0.5296375
- ; Comb 6 78.0 2539 2539 2539 2539 77.998 0.4243750 0.4835250
- ; All 6.0 195 197 193 193 5.929 0.7000000
-
- ; COMB(name, length, modulus, g1, g2)
-
-
-
-
- ; storage for "c1" length=1627 modulus=2048 g1=0.3046875 g2=0.5812382
-
- X:1000 psect lo_data
- X:1000 align 2048
- X:1000 c1d
- 00065A c1m equ 1627-1
- X:165A org x:c1d+c1m
- X:0019 psect hf_datax
- 0.304688 c1g1 equ 0.3046875
- 0.581238 c1g2 equ 0.5812382
-
-
- ; storage for "a1" length=193 modulus=256 g1=0.7000000 g2=0.0000000
-
- X:165A psect lo_data
- X:1700 align 256
- X:1700 a1d
- 0000C0 a1m equ 193-1
- X:17C0 org x:a1d+a1m
- X:0019 psect hf_datax
- 0.7 a1g1 equ 0.7000000
- 0 a1g2 equ 0.0000000
-
-
- ; storage for "c2" length=1823 modulus=2048 g1=0.3281250 g2=0.5616459
-
- X:17C0 psect lo_data
- X:1800 align 2048
- X:1800 c2d
- 00071E c2m equ 1823-1
- X:1F1E org x:c2d+c2m
- X:0019 psect hf_datax
- 0.328125 c2g1 equ 0.3281250
- 0.561646 c2g2 equ 0.5616459
-
-
- ; storage for "c3" length=1987 modulus=2048 g1=0.3515625 g2=0.5420536
-
- X:1F1E psect lo_data
- X:2000 align 2048
- X:2000 c3d
- 0007C2 c3m equ 1987-1
- X:27C2 org x:c3d+c3m
- X:0019 psect hf_datax
- 0.351563 c3g1 equ 0.3515625
- 0.542054 c3g2 equ 0.5420536
-
-
- ; storage for "c4" length=2213 modulus=4096 g1=0.3750000 g2=0.5224613
-
- X:27C2 psect lo_data
- X:3000 align 4096
- X:3000 c4d
- 0008A4 c4m equ 2213-1
- X:38A4 org x:c4d+c4m
- X:0019 psect hf_datax
- 0.375 c4g1 equ 0.3750000
- 0.522461 c4g2 equ 0.5224613
-
-
- ; storage for "a2" length=207 modulus=256 g1=0.7500000 g2=0.0000000
-
- X:38A4 psect lo_data
- X:3900 align 256
- X:3900 a2d
- 0000CE a2m equ 207-1
- X:39CE org x:a2d+a2m
- X:0019 psect hf_datax
- 0.75 a2g1 equ 0.7500000
- 0 a2g2 equ 0.0000000
-
-
- ; storage for "c5" length=2341 modulus=4096 g1=0.3984375 g2=0.5028690
-
- X:39CE psect lo_data
- X:4000 align 4096
- X:4000 c5d
- 000924 c5m equ 2341-1
- X:4924 org x:c5d+c5m
- X:0019 psect hf_datax
- 0.398438 c5g1 equ 0.3984375
- 0.502869 c5g2 equ 0.5028690
-
-
- ; storage for "c6" length=2539 modulus=4096 g1=0.4218750 g2=0.4832767
-
- X:4924 psect lo_data
- X:5000 align 4096
- X:5000 c6d
- 0009EA c6m equ 2539-1
- X:59EA org x:c6d+c6m
- X:0019 psect hf_datax
- 0.421875 c6g1 equ 0.4218750
- 0.483277 c6g2 equ 0.4832767
-
-
- X:0019 psect hf_datax
- X:0019 001700 a1r dc a1d
- X:001A 0000C0 a1md dc a1m
- X:001B 59999A a1g1d dc a1g1
- X:001C 003900 a2r dc a2d
- X:001D 0000CE a2md dc a2m
- X:001E 600000 a2g1d dc a2g1
- Y:0000 psect hf_datay
- Y:0000 curaddrp
- Y:0000 000040 dc curaddr
- X:001F psect hf_datax
- X:001F 000040 constsp dc consts
- X:0020 lowstatep
- X:0020 000046 dc lowstate
-
- X:0040 psect hf_datax1
- X:0040 curaddr
- X:0040 001000 dc c1d
- X:0041 001800 dc c2d
- X:0042 002000 dc c3d
- X:0043 003000 dc c4d
- X:0044 004000 dc c5d
- X:0045 005000 dc c6d
-
- Y:0040 psect hf_datay1
- Y:0040 consts
- Y:0040 00065A dc c1m
- Y:0041 270000 dc c1g1
- Y:0042 4A6603 dc c1g2
- Y:0043 00071E dc c2m
- Y:0044 2A0000 dc c2g1
- Y:0045 47E403 dc c2g2
- Y:0046 0007C2 dc c3m
- Y:0047 2D0000 dc c3g1
- Y:0048 456203 dc c3g2
- Y:0049 0008A4 dc c4m
- Y:004A 300000 dc c4g1
- Y:004B 42E003 dc c4g2
- Y:004C 000924 dc c5m
- Y:004D 330000 dc c5g1
- Y:004E 405E03 dc c5g2
- Y:004F 0009EA dc c6m
- Y:0050 360000 dc c6g1
- Y:0051 3DDC03 dc c6g2
-
- X:0046 psect hf_datax1
- X:0046 lowstate
- X:0046 000000 dc 0
- X:0047 000000 dc 0
- X:0048 000000 dc 0
- X:0049 000000 dc 0
- X:004A 000000 dc 0
- X:004B 000000 dc 0
-
- ;;;;;;;;;;;;;;;;;;;;;;;
- ; miscellaneous signals
- ;;;;;;;;;;;;;;;;;;;;;;;
-
- X:0021 psect hf_datax
- X:0021 L_overall
- X:0021 7FFFFF dc $7FFFFF
- X:0022 R_overall
- X:0022 7FFFFF dc $7FFFFF
-
- ;;;;;;;;;;;;;;;;;;;;;;;
- ; signal vector
- ;;;;;;;;;;;;;;;;;;;;;;;
- X:0023 psect hf_datax
- X:0028 align 8
- X:0028 signal_vector
- X:0028 000000 Lin dc 0.0
- X:0029 000000 Rin dc 0.0
- X:002A Reverb_L
- X:002A 000000 dc 0.0
- X:002B Reverb_R
- X:002B 000000 dc 0.0
-
- X:002C Lout
- X:002C 000000 dc 0
- X:002D Rout
- X:002D 000000 dc 0
-
- Y:0001 psect hf_datay
- Y:0001 signal_vectorp
- Y:0001 000028 dc signal_vector
- Y:0002 signal_mod
- Y:0002 000003 dc 4-1
-
- Y:0003 gain_vectorsp
- Y:0003 000052 dc gain_vectors
- ;;;;;;;;;;;;;;;;;;;;;;;
- ; gain matrix
- ;;;;;;;;;;;;;;;;;;;;;;;
- Y:0052 psect hf_datay1
- Y:0052 gain_vectors
- Y:0052 Reverb_gain_vector
- Y:0052 400000 Reverb_Lin dc 0.5
- Y:0053 400000 Reverb_Rin dc 0.5
- Y:0054 000000 Reverb_Reverb_L dc 0.0
- Y:0055 000000 Reverb_Reverb_R dc 0.0
-
- Y:0056 Lout_gain_vector
- Y:0056 000000 Lout_Lin dc 0.0
- Y:0057 000000 Lout_Rin dc 0.0
- Y:0058 7FFFFF Lout_Reverb_L dc ONE
- Y:0059 000000 Lout_Reverb_R dc 0.0
-
- Y:005A Rout_gain_vector
- Y:005A 000000 Rout_Lin dc 0.0
- Y:005B 000000 Rout_Rin dc 0.0
- Y:005C 000000 Rout_Reverb_L dc 0.0
- Y:005D 800000 Rout_Reverb_R dc -1.0
-
- ;***************************************************************
- ;
- ; init code - call hf_init at first and any time when
- ; parameters change
- ;
- ;***************************************************************
- P:F000 psect lo_code
-
- P:F000 hf_init
- ;
- ; clear out the filter delay lines
- ;
-
-
-
- P:F000 60F400 move #c1d,r0
- P:F001 001000
- P:F002 05F420 movec #c1m,m0
- P:F003 00065A
- P:F004 0BF080 jsr clear_line_r0
- P:F005 00F033
-
-
- P:F006 60F400 move #c2d,r0
- P:F007 001800
- P:F008 05F420 movec #c2m,m0
- P:F009 00071E
- P:F00A 0BF080 jsr clear_line_r0
- P:F00B 00F033
-
-
- P:F00C 60F400 move #c3d,r0
- P:F00D 002000
- P:F00E 05F420 movec #c3m,m0
- P:F00F 0007C2
- P:F010 0BF080 jsr clear_line_r0
- P:F011 00F033
-
-
- P:F012 60F400 move #c4d,r0
- P:F013 003000
- P:F014 05F420 movec #c4m,m0
- P:F015 0008A4
- P:F016 0BF080 jsr clear_line_r0
- P:F017 00F033
-
-
- P:F018 60F400 move #c5d,r0
- P:F019 004000
- P:F01A 05F420 movec #c5m,m0
- P:F01B 000924
- P:F01C 0BF080 jsr clear_line_r0
- P:F01D 00F033
-
-
- P:F01E 60F400 move #c6d,r0
- P:F01F 005000
- P:F020 05F420 movec #c6m,m0
- P:F021 0009EA
- P:F022 0BF080 jsr clear_line_r0
- P:F023 00F033
-
-
- P:F024 60F400 move #a1d,r0
- P:F025 001700
- P:F026 05F420 movec #a1m,m0
- P:F027 0000C0
- P:F028 0BF080 jsr clear_line_r0
- P:F029 00F033
-
-
- P:F02A 60F400 move #a2d,r0
- P:F02B 003900
- P:F02C 05F420 movec #a2m,m0
- P:F02D 0000CE
- P:F02E 0BF080 jsr clear_line_r0
- P:F02F 00F033
-
- P:F030 0BF080 jsr recalc_comb_gains
- P:F031 000006
- P:F032 00000C rts
-
- P:F033 clear_line_r0
- P:F033 200013 clr a
- P:F034 0600A0 rep #0
- P:F035 565800 move a,x:(r0)+
- P:F036 00000C rts
-
- ;***************************************************************
- ;
- ; sample rate computations
- ;
- ; Call hf_comp once per sample.
- ; Globals in_l and in_r should have the left and right
- ; input samples. When hf_comp returns, out_l and out_r
- ; will be ready.
- ;
- ;***************************************************************
-
- ;
- ; fs = 32.552083 kHz
- ;
- P:0040 psect hf_code
-
- P:0040 hf_comp
- ;
- ; copy inputs
- ;
- P:0040 568200 move x:<in_l,a
- P:0041 562800 move a,x:<Lin
- P:0042 568300 move x:<in_r,a
- P:0043 562900 move a,x:<Rin
- ;
- ; compute outputs using matrix multiply
- ;
- ; [reverb_in out_l out_r] = [gain_vector] * [signal_vector]
- ;
- P:0044 688100 move y:<signal_vectorp,r0
- P:0045 058260 movec y:<signal_mod,m0
- P:0046 6C8300 move y:<gain_vectorsp,r4
- P:0047 058024 movec x:<ffff,m4
- P:0048 47A100 move x:<L_overall,y1 ;and wait for m4
- P:0049 F09813 clr a x:(r0)+,x0 y:(r4)+,y0
- P:004A F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:004B F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:004C F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:004D F098D3 macr x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:004E 21CF13 clr a a,b ;b is reverb_in
- P:004F F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:0050 F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:0051 F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:0052 F098D3 macr x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:0053 21C513 clr a a,x1
- P:0054 47A2F0 mpy x1,y1,a x:<R_overall,y1
- P:0055 560413 clr a a,x:<out_l
- P:0056 F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:0057 F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:0058 F098D2 mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:0059 F098D3 macr x0,y0,a x:(r0)+,x0 y:(r4)+,y0
- P:005A 21C513 clr a a,x1
- P:005B 2000F0 mpy x1,y1,a
- P:005C 560513 clr a a,x:<out_r
- ;
- ; r1 lowstate vector
- ; m1 -1
- ; r4 ptr to modulus,g1,g2 constants
- ; m4 -1
- ; r5 curaddr ptr
- ; m5 -1
- ; b comb out accum
- ; x0 scaled comb in
- ;
- ;
- ; set up reverb input
- ;
- P:005D 21E41B clr b b,x0 ;get reverb_in
- P:005E 250800 move #1.0/16,x1 ;allow 4 bits of headroom
- P:005F 2000A1 mpyr x0,x1,a ;and 4 bits of noise
- P:0060 21C400 move a,x0
- P:0061 61A000 move x:<lowstatep,r1
- P:0062 058021 movec x:<ffff,m1
- P:0063 649F00 move x:<constsp,r4
- P:0064 0464A1 movec m1,m4
- P:0065 6D8000 move y:<curaddrp,r5
- P:0066 0465A1 movec m1,m5
- ;
- ; do the six combs
- ;
- P:0067 060680 do #6,comb_loop
- P:0068 000072
- P:0069 60E500 move x:(r5),r0 ;r0=curaddr
- P:006A 05DC60 movec y:(r4)+,m0 ;m0=modulus
- P:006B F58100 move x:(r1),x1 y:(r4)+,y1 ;x1=lowstate, y1=g1, wait for m0
- P:006C 46D800 move x:(r0)+,y0 ;y0=delay out
- P:006D 20CE58 add y0,b y0,a ;a=delay out
- P:006E 4FDCF3 macr x1,y1,a y:(r4)+,y1 ;a=out+g1*lowstate, y1=g2
- P:006F 181913 clr a a,x:(r1)+ a,y0 ;y0=new lowstate
- P:0070 605D40 add x0,a r0,x:(r5)+ ;a=in, save ptr
- P:0071 2000B3 macr y0,y1,a ;a=in+g2*g1*lowstate
- P:0072 567800 move a,x:-(r0) ;store delay in (takes 2 cyc)
- P:0073 comb_loop
- ;
- ; scale
- ;
- P:0073 241519 rnd b #$15,x0 ;scale by ~1/6
- P:0074 21E600 move b,y0
- P:0075 2000D9 mpyr x0,y0,b
- P:0076 21E700 move b,y1 ;save b for right chan
- ;
- ; allpass L
- ;
- P:0077 609900 move x:<a1r,r0
- P:0078 059A20 movec x:<a1md,m0
- P:0079 449B00 move x:<a1g1d,x0
- P:007A 45E000 move x:(r0),x1
- P:007B 20AEAB macr x0,x1,b x1,a
- P:007C 21E600 move b,y0
- P:007D 5758D7 macr -x0,y0,a b,x:(r0)+
- P:007E 601932 asl a r0,x:<a1r
- P:007F 200032 asl a ;get rid of the headroom
- P:0080 200032 asl a
- P:0081 200032 asl a
- P:0082 562A00 move a,x:<Reverb_L
- ;
- ; allpass R
- ;
- P:0083 609C79 tfr y1,b x:<a2r,r0
- P:0084 059D20 movec x:<a2md,m0
- P:0085 449E3E neg b x:<a2g1d,x0
- P:0086 45E000 move x:(r0),x1
- P:0087 20AEAB macr x0,x1,b x1,a
- P:0088 21E600 move b,y0
- P:0089 5758D7 macr -x0,y0,a b,x:(r0)+
- P:008A 601C32 asl a r0,x:<a2r
- P:008B 200032 asl a
- P:008C 200032 asl a
- P:008D 200032 asl a
- P:008E 562B00 move a,x:<Reverb_R
- ;
- ; done
- ;
- P:008F 00000C rts
-
- end
-
- Summary of psect usage
-
- section seg base last top used avail total
- -------------------------------------------------------------------------
- vectors P 0000 0000 0040 0 0% 64 100% 64
- hf_code P 0040 0090 0200 80 17% 368 82% 448
- hf_datax X 0000 002E 0040 46 71% 18 28% 64
- hf_datax1 X 0040 004C 0100 12 6% 180 93% 192
- hf_datay Y 0000 0004 0040 4 6% 60 93% 64
- hf_datay1 Y 0040 005E 0100 30 15% 162 84% 192
- midi_data X 0400 0427 1000 39 1% 3033 98% 3072
- lo_data X 1000 59EA F000 18922 32% 38422 67% 57344
- lo_code P F000 F037 FE00 55 1% 3529 98% 3584
- loader P FE00 FE00 FFFF 0 0% 511 100% 511
- iox X FFC0 FFC0 FFFF 0 0% 63 100% 63
- ioy Y FFC0 FFC0 FFFF 0 0% 63 100% 63
-
-
- Symbol Table
- -------------------------------------
- ffff 000000
- one 000001
- ONE 7FFFFF
- lowstate 000046
- lowstatep 000020
- lowpass_cutoff_slope 000401
- lowpass_cutoff_start 000400
- gain_vectors 000052
- gain_vectorsp 000003
- in_r 000003
- in_l 000002
- comb_loop 000073
- consts 000040
- constsp 00001F
- comblen_6 000421
- comblen_5 00041B
- comblen_4 000415
- comblen_3 00040F
- comblen_2 000409
- comblen_1 000403
- comb_g 000402
- R_overall 000022
- hf_comp 000040
- hf_init 00F000
- clear_line_r0 00F033
- L_overall 000021
- curaddr 000040
- curaddrp 000000
- recalc_loop 000018
- recalc_comb_gains 000006
- signal_mod 000002
- signal_vectorp 000001
- signal_vector 000028
- out_r 000005
- out_l 000004
- Lout_Reverb_R 000059
- Lout_Reverb_L 000058
- Lout_Rin 000057
- Lout_Lin 000056
- Lout_gain_vector 000056
- Lout 00002C
- Lin 000028
- Reverb_Reverb_R 000055
- Reverb_Reverb_L 000054
- Reverb_Rin 000053
- Reverb_Lin 000052
- Reverb_gain_vector 000052
- Reverb_R 00002B
- Reverb_L 00002A
- Rin 000029
- Rout_Reverb_R 00005D
- Rout_Reverb_L 00005C
- Rout_Rin 00005B
- Rout_Lin 00005A
- Rout_gain_vector 00005A
- Rout 00002D
- a1g1d 00001B
- a1md 00001A
- a1r 000019
- c3g2 0.5420536000
- c3g1 0.3515625000
- c3m 0007C2
- c3d 002000
- a1g2 0.0000000000
- a1g1 0.7000000000
- a1m 0000C0
- a1d 001700
- c2g2 0.5616459000
- c2g1 0.3281250000
- c2m 00071E
- c2d 001800
- c1g2 0.5812382000
- c1g1 0.3046875000
- c1m 00065A
- c1d 001000
- a2g1d 00001E
- a2md 00001D
- a2r 00001C
- a2g2 0.0000000000
- a2g1 0.7500000000
- a2m 0000CE
- a2d 003900
- c6g2 0.4832767000
- c6g1 0.4218750000
- c6m 0009EA
- c6d 005000
- c5g2 0.5028690000
- c5g1 0.3984375000
- c5m 000924
- c5d 004000
- c4g2 0.5224613000
- c4g1 0.3750000000
- c4m 0008A4
- c4d 003000
- errors=0
-